#include <iostream>
using namespace std;

namespace wqh
{
    int x = 100;
}

// int main()
// {
//     // c++对很多c语言的操作符进行了复用
//     // 流插入 自动识别类型
//     cout << wqh::x << endl;
//     // 左移
//     wqh::x = wqh::x << 1;
//     cout << wqh::x << endl;

//     const char *str = "hell world";
//     cout << str << endl;
//     str = "hello C++";
//     cout << str << endl;

//     // 右移
//     // 流提取
//     int i = 0;
//     cin >> wqh::x >> i;
//     cout << wqh::x << endl
//          << i << endl;
//     return 0;
// }

// 缺省参数
void Func(int a, int b = 20, int c = 30)
{
    cout << a << endl;
    cout << b << endl;
    cout << c << endl;
}
// int main()
// {
//     Func(1, 2, 3);
//     Func(4, 5);
//     Func(6);
//     // Func();
//     return 0;
// }

// c语言不允许同名函数
// CPP语言允许同名函数，要求函数名相同，参数不相同，构成函数重载
int Add(int left, int right)
{
    cout << "int Add(int left,int right)" << endl;
    return left + right;
}
double Add(double left, double right)
{
    cout << "double Add(double left,double right)" << endl;
    return left + right;
}
// c语言不支持函数重载    链接时直接用函数名去找地址，有同名函数，区分不开
// cpp怎么支持函数重载的呢？    函数名修饰规则，名字中引入参数类型，各个编译器自己实现了
int main()
{
    Add(1, 2);
    Add(1.1, 2.2);
    return 0;
}